关于CMakeLists自定义头文件、源文件的配置 | 您所在的位置:网站首页 › c语言 自定义头文件 › 关于CMakeLists自定义头文件、源文件的配置 |
1、自定义头文件 如果在功能包下面的include下创建了自定义的.h文件,在配置CMakeLists时需要把下面代码的注释解开; include_directories( include ${catkin_INCLUDE_DIRS} )2、自定义源文件 如果功能包的src下有多个cpp文件,但是想在一个节点下运行,一共有两种方法,自我感觉下面的方法1比较简单, ${PROJECT_NAME}:表示以包名生成的一个名字;${PROJECT_SOURCE_DIR}:表示该包所在的文件夹, 方法1 add_executable(${PROJECT_NAME}_node src/hello.cpp src/use_hello.cpp)直接将src下的多个cpp文件都添加进该命令行,然后将下面代码的注释给解开即可 add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) target_link_libraries(${PROJECT_NAME}_node ${catkin_LIBRARIES} )如果有用到其他包里的源文件,也可以直接添加到可执行命令行,下面这行命令的意思是获取该包所在上级目录toollib的src下的源文件,打包给SRC_LIST,并按下面的命令添加到可执行文件,即可。 aux_source_directory(${PROJECT_SOURCE_DIR}/../toollib/src SRC_LIST) add_executable(${PROJECT_NAME}_node src/hello.cpp src/use_hello.cpp ${SRC_LIST} )方法2(仅测试有两个cpp文件) 添加c++配置文件(main函数的执行要依赖于这个文件) add_library(head_src include/${PROJECT_NAME}/hello.h src/hello.cpp )head_src是自定义的,然后依次添加头文件、源文件, 然后添加可执行文件,可执行文件只添加有main函数的cpp文件, add_executable(use_hello src/use_hello.cpp)use_hello名字是自定义的,当然也可以用默认的,这个名字是运行时的节点名,它要与target_link_libraries里的${PROJECT_NAME}_node相对应,一个地方改了,另一个地方也要改。 然后是配置target_link_libraries,如下:use_hello是main函数的cpp文件,它的执行依赖于head_src target_link_libraries(head_src ${catkin_LIBRARIES} ) target_link_libraries(use_hello head_src ${catkin_LIBRARIES} )3、让一个包里src下不同的cpp文件分别生成不同的运行节点 配置CMakeLists时,在添加可执行文件行,给不同的cpp文件分别起上不同的名字,然后在target_link_libraries也分别对应上相应的名字即可。 add_executable(haha01 src/haha01.cpp ) add_executable(hear01 src/hear01.cpp ) add_executable(person_pub src/demo03.cpp ) add_executable(person_sub src/demo04.cpp ) target_link_libraries(haha01 ${catkin_LIBRARIES} ) target_link_libraries(hear01 ${catkin_LIBRARIES} ) target_link_libraries(person_pub ${catkin_LIBRARIES} ) target_link_libraries(person_sub ${catkin_LIBRARIES} )以上仅供参考,欢迎交流学习。 |
CopyRight 2018-2019 实验室设备网 版权所有 |